From: Joonas Henriksson Date: Mon, 18 Nov 2019 20:24:05 +0000 (+0200) Subject: animation: Add parameter for hiding stopped Spinner actor X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~781^2^2~405 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=8f4e91a738ee09e60fb193c5953aded1bed5915a;p=gnome-shell.git animation: Add parameter for hiding stopped Spinner actor Not hiding leaves the empty actor space visible, which may have an undesirable effect on the parent element's size or spacing/padding. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/832 --- diff --git a/js/ui/animation.js b/js/ui/animation.js index 6002a3754..5cd9f3a20 100644 --- a/js/ui/animation.js +++ b/js/ui/animation.js @@ -141,12 +141,15 @@ class Spinner extends AnimatedIcon { _init(size, params) { params = Params.parse(params, { animate: false, + hideOnStop: false, }); let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/process-working.svg'); super._init(file, size); this.opacity = 0; this._animate = params.animate; + this._hideOnStop = params.hideOnStop; + this.visible = !this._hideOnStop; } _onDestroy() { @@ -156,6 +159,7 @@ class Spinner extends AnimatedIcon { play() { this.remove_all_transitions(); + this.show(); if (this._animate) { super.play(); @@ -179,11 +183,18 @@ class Spinner extends AnimatedIcon { opacity: 0, duration: SPINNER_ANIMATION_TIME, mode: Clutter.AnimationMode.LINEAR, - onComplete: () => super.stop(), + onComplete: () => { + super.stop(); + if (this._hideOnStop) + this.hide(); + }, }); } else { this.opacity = 0; super.stop(); + + if (this._hideOnStop) + this.hide(); } } });